翻訳と辞書
Words near each other
・ C/W曲
・ C0-半群
・ C0半群
・ C1000 (飲料)
・ C1000 presents yuumiのLOVELY DAY
・ C1000タケダ
・ C10型
・ C10形
・ C10形式
・ C10形蒸気機関車
C11 (C言語)
・ C11 (潜水艦)
・ C11型
・ C11形
・ C11形式
・ C11形蒸気機関車
・ C12型
・ C12形
・ C12形式
・ C12形蒸気機関車


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

C11 (C言語) : ウィキペディア日本語版
C11 (C言語)[しー11]

C11 は、2011年時点の最新のC言語の規格。
ISO/IEC 9899:2011〔ISO/IEC 9899:2011 - Information technology - Programming languages - C 〕 の通称。C99の後継。規格は2011年12月8日に承認された。正誤表 の Technical Corrigendum 1 (ISO/IEC 9899:2011/Cor. 1:2012) も発行されている。
C89, C99のように2桁で数字を表す習慣がコンピュータ業界にあり、2000年問題を引き起こしたため、2000年以降のものは、4桁で表現するように改める動きがあり、。
C11 の一部は、GCC 4.6〔GCC 4.6 Release Series — Changes, New Features, and Fixes - GNU Project - Free Software Foundation (FSF) 〕、Clang 3.0〔Clang 3.0 Release Notes 〕 などで実装開始されている。GCC 4.9 にて、glibc にまつわる問題以外は実装が完了している〔C11Status - GCC Wiki 〕。GCC 4.7 や Clang 3.1 では -std=c11 もしくは -std=gnu11 を指定することで利用可能。GCC 5.0 からはデフォルトが gnu11 になる〔GCC 5 Release Series — Changes, New Features, and Fixes - GNU Project - Free Software Foundation (FSF) 〕。
==C99からの変更点==
C11 は言語仕様とライブラリの仕様の変更を含む。変更点は以下の通り:〔
* アライメント。_Alignas 指定子, alignof 演算子, aligned_alloc 関数, ヘッダーファイル)
* _Noreturn 関数指定子。abort 関数のような戻らない関数を呼び出す関数で使用。
* _Generic キーワードを使用した型ジェネリック式。例えば、次のマクロ cbrt(x)xの型に基づいて、cbrtl(x), cbrt(x), cbrtf(x) などに置き換わる。

#define cbrt(X) _Generic((X), long double: cbrtl, \
default: cbrt, \
float: cbrtf)(X)

* マルチスレッド対応。_Thread_local ストレージクラス指定子, ヘッダーにスレッド作成・管理関数、mutex、条件変数、スレッドローカルデータ。_Atomic 型修飾子、 でのアトミックアクセス。
* C Unicode Technical Report ISO/IEC TR 19769:2004 に基づく、Unicode のサポートの改善。を追加。char16_tchar32_tを追加。対応する、uU 文字列プレフィックス。UTF-8文字列プレフィックスの u8 追加。〔
* メモリ境界チェック付き関数 (Annex K)。C99 で deprecated になった、gets 関数の除去。代わりに、境界チェックを行う、gets_s 関数がある。
* Analyzability features (Annex L).
* 浮動小数点型の特徴を調べるためのマクロの追加。
* 無名構造体と無名 union。構造体や union が入れ子になった場合に便利。例:struct T ;
* 静的アサート。#if#error よりもあとの、コンパイラが型を理解した後でのアサート。
* fopen() での排他的な作成・オープンモードの ("…x")。POSIXO_CREAT | O_EXCL と同じような処理を行う。
* exit 関数が失敗した場合の、最低限の終了処理のみを行う quick_exit() 関数。〔WG14 N1327 Abandoning a Process
* 複素数を作成するマクロ。imaginaryが無限もしくはNaNだとreal + imaginary
* I
が期待した値を示さない場合があることが理由の一部〔。

抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「C11 (C言語)」の詳細全文を読む



スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.